package com.the_last.pojo.dto;

import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 增量用户角色分配DTO
 * 用于精确控制用户角色的增加和删除操作
 */
@Data
public class IncrementalUserRoleDTO {
    
    @NotNull(message = "用户ID不能为空")
    private Long userId;
    
    /**
     * 需要添加的角色ID列表
     * 如果为null或空，表示不进行角色添加操作
     */
    private List<Long> addRoleIds;
    
    /**
     * 需要移除的角色ID列表
     * 如果为null或空，表示不进行角色移除操作
     */
    private List<Long> removeRoleIds;
    
    /**
     * 检查是否有有效的操作
     * @return 如果有添加或删除操作返回true
     */
    public boolean hasValidOperation() {
        return (addRoleIds != null && !addRoleIds.isEmpty()) || 
               (removeRoleIds != null && !removeRoleIds.isEmpty());
    }
    
}